package com.bdbit.ChargingStation.services;

import com.bdbit.ChargingStation.model.TransactionRecord;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;

@Service
public interface PaymentService {
    
    /**
     * 处理支付请求
     * @param userId 用户ID
     * @param amount 支付金额（单位：分）
     * @param deviceId 设备ID
     * @return 支付是否成功
     */
    boolean processPayment(String userId, int amount, String deviceId);
    
    /**
     * 处理退款请求
     * @param deviceId 设备ID
     * @return 退款是否成功
     */
    boolean processRefund(String deviceId);
    
    /**
     * 查询交易记录
     * @param deviceId 设备ID
     * @return 交易记录详情
     */
    TransactionRecord getTransactionRecord(String deviceId);
    
    /**
     * 计算充电时长
     * @param amount 支付金额（单位：分）
     * @param chargingRate 充电速率（W）
     * @param unitPriceDuration 1元对应的100W充电时长（分钟）
     * @return 充电时长（秒）
     */
    long calculateChargingTime(int amount, int chargingRate, int unitPriceDuration);

    /**
     * 退款接口
     * @param orderId 订单ID
     * @param refundAmount 退款金额
     * @return 退款是否成功
     */
    boolean refund(String orderId, BigDecimal refundAmount);
}